home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / util / cli / nvtools.lha / ProtectNV.mod < prev    next >
Text File  |  1995-09-30  |  1KB  |  61 lines

  1. MODULE ProtectNV;
  2. (*
  3.   $StackChk-
  4.   $RangeChk-
  5.   $NilChk-
  6.   $OvflChk-
  7.   $ReturnChk-
  8.   $CaseChk-
  9. *)
  10.  
  11. IMPORT
  12.   y := SYSTEM,
  13.  
  14.   (* Interfaces *)
  15.   d := Dos,
  16.   nv := NonVolatile,
  17.  
  18.   str := Strings;
  19.  
  20. CONST
  21.   template = "AN=APPNAME/A,IN=ITEMNAME/A,KR=KILLREQUESTER/S,PROT"
  22.              "\o$VER: ProtectNV.mod 1.0 (30.09.95)";
  23.  
  24. TYPE
  25.   Args = STRUCT (as :d.ArgsStruct)
  26.     appName   :d.ArgString;
  27.     itemName  :d.ArgString;
  28.     killReq   :d.ArgBool;
  29.     prot      :d.ArgString;
  30.   END;
  31.  
  32. VAR
  33.   args      :d.RDArgsPtr;
  34.   argv      :Args;
  35.  
  36.   err       :LONGINT;
  37.  
  38. BEGIN
  39.   IF nv.base=NIL THEN
  40.     d.PrintF("No nonvolatile.library!\n");
  41.     HALT(20);
  42.   END;
  43.  
  44.   args := d.ReadArgs(template, argv, NIL);
  45.   IF args=NIL THEN
  46.     IF d.PrintFault(d.IoErr(), "ProtectNV") THEN END;
  47.     HALT(20);
  48.   END;
  49.  
  50.   IF argv.prot^="+d" THEN
  51.     IF nv.SetNVProtection(argv.appName^, argv.itemName^, LONGSET{nv.delete}, argv.killReq) THEN END;
  52.   ELSIF argv.prot^="-d" THEN
  53.     IF nv.SetNVProtection(argv.appName^, argv.itemName^, LONGSET{}, argv.killReq) THEN END;
  54.   ELSE
  55.     d.PrintF("Invalid protection\n");
  56.   END;
  57.  
  58. CLOSE
  59.   d.FreeArgs(args)
  60. END ProtectNV.
  61.